20 PRINT "START ";: INVERSE : PRINT "TEST 2";: NORMAL : PRINT " BY PRESSING ANY KEY ": PRINT : PRINT "A BELL WILL SIGNAL THE END OF THE SORT ";: GET I$: PRINT : PRINT : PRINT : HTAB 10: PRINT ">>>> SORTING <<<<": PRINT
30 FOR J = 1 TO N -1: FOR I = 1 TO N -J
40 : IF T(I) <T(I +1) THEN TM = T(I):T(I) = T(I +1):T(I +1) = TM
50 : IF T(I) >T(I +1) THEN TM = T(I):T(I) = T(I +1):T(I +1) = TM
60 NEXT I,J: PRINT CHR$(7): RETURN
70 PRINT "START ";: INVERSE : PRINT "TEST 1";: NORMAL : PRINT " BY PRESSING ANY KEY ": PRINT : PRINT "A BELL WILL SIGNAL THE END OF THE SORT ";: GET I$: PRINT : PRINT : PRINT : HTAB 10: PRINT ">>>> SORTING <<<<": PRINT
80 FOR J = 1 TO N -1: FOR I = 1 TO N -J
90 IF S$ = "D" AND T(I) <T(I +1) THEN TM = T(I):T(I) = T(I +1):T(I +1) = TM
100 IF S$ = "A" AND T(I) >T(I +1) THEN TM = T(I):T(I) = T(I +1):T(I +1) = TM
110 NEXT I,J: PRINT CHR$(7): RETURN
120 HOME : INPUT "HOW MANY NUMBERS TO BE SORTED? ";I$:N = VAL(I$): IF I$ = "" THEN 120
130 DIM T(N),H(N)
140 FOR I = 1 TO N:T(I) = INT( RND(1) *100 +1):H(I) = T(I): NEXT
150 VTAB 3: CALL -958: PRINT "ASCENDING OR DESCENDING ORDER (A/D)? ";: GET S$: PRINT S$: IF S$ < >"A" AND S$ < >"D" THEN 150
160 IF S$ = "A" THEN POKE 2222,178
170 IF S$ = "D" THEN POKE 2270,178
180 HOME : INVERSE : PRINT " NUMBERS TO BE SORTED ": NORMAL : PRINT
190 FOR I = 1 TO N: PRINT T(I),: NEXT : PRINT : PRINT
200 GOSUB 70
210 HOME : INVERSE : PRINT " TEST 1 SORT COMPLETED ";: HTAB 26: PRINT " IF/THEN ": NORMAL : PRINT
220 FOR I = 1 TO N: PRINT T(I),: NEXT : PRINT : GOSUB 290
230 HOME : INVERSE : PRINT " NUMBERS TO BE SORTED ": NORMAL : PRINT
240 FOR I = 1 TO N:T(I) = H(I): PRINT T(I),: NEXT : PRINT : PRINT
250 GOSUB 20
260 HOME : INVERSE : PRINT " TEST 2 SORT COMPLETED ";: HTAB 26: PRINT " REMPOKE ": NORMAL : PRINT
270 FOR I = 1 TO N: PRINT T(I),: NEXT : PRINT
280 POKE 2222,58: POKE 2270,58: PRINT : PRINT : PRINT " RUN (FOR ANOTHER TEST)";: CALL -998: END
290 HTAB 6: VTAB 24: PRINT "PRESS ANY KEY TO CONTINUE ";: GET I$: RETURN : REM